/*
 * @lc app=leetcode.cn id=205 lang=javascript
 *
 * [205] 同构字符串
 */

// @lc code=start
/**
 * @param {string} s
 * @param {string} t
 * @return {boolean}
 */
// 使用hash表存储key,value,如果遇到key的value不相等,则不为同构
var isIsomorphic = function(s, t) {
  let map1 = new Map()
  let map2 = new Map()
  let i = 0
  while (i < s.length) {
    let flag1 = map1.get(s[i]) && map1.get(s[i]) !== t[i]
    let flag2 = map2.get(t[i]) && map2.get(t[i]) !== s[i]
    if (flag1 || flag2) return false
    if (!map1.get(s[i])) {
      map1.set(s[i], t[i])
    } 
    if (!map2.get(t[i])) {
      map2.set(t[i], s[i])
    }
    i++
  }
  return true
};
// @lc code=end

